Imagine o dado bruto como um fluxo sem rótulo — uma fronteira selvagem da memória. Na linguagem Rust, começamos a lidar com os dados como pedaços contíguos (fatias e arrays). Essa transição do dado bruto para esquemas definidos marca a mudança da memória anônima para estruturas com propósito.
1. O Nível "Bruto"
As fatias e arrays representam os dados em sua forma mais simples. A segurança é mantida por meio de verificações de propriedade em tempo de compilação em vez de sobrecarga em tempo de execução. Usando empréstimo (&) nos permite criar "visualizações" dos dados sem mover os valores.
2. Limites Semânticos
Embora funções como first_word sejam flexíveis (aceitando String, &str, ou literais), elas atingem um limite semântico. O compilador sabe que a memória é segura, mas não sabe o que os dados representam (por exemplo, um nome de usuário versus uma leitura de sensor) até que os mapeemos para um Struct.